feat(vortex-geo): add make-line and length scalar functions - #9201
feat(vortex-geo): add make-line and length scalar functions#9201HarukiMoriarty wants to merge 2 commits into
Conversation
Merging this PR will improve performance by 19.96%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | decode_varbin[(1000, 2)] |
78.6 µs | 62 µs | +26.61% |
| ⚡ | Simulation | compress_fsst[(1000, 64, 8)] |
1.2 ms | 1 ms | +13.66% |
| 🆕 | Simulation | nullable_two_vertex_lines |
N/A | 1 ms | N/A |
| 🆕 | Simulation | sixteen_vertex_lines |
N/A | 1.9 ms | N/A |
| 🆕 | Simulation | two_vertex_lines |
N/A | 668.3 µs | N/A |
| 🆕 | Simulation | column_x_column |
N/A | 272 µs | N/A |
| 🆕 | Simulation | column_x_constant |
N/A | 647.3 µs | N/A |
| 🆕 | Simulation | nullable_columns |
N/A | 292.5 µs | N/A |
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing nemo/geo-native-bbox-precheck (72a4ae1) with nemo/geo-scalar-execution (09f16ff)
Footnotes
-
43 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
a9ca3bf to
7a91f2d
Compare
7a91f2d to
351f3be
Compare
Signed-off-by: Nemo Yu <zyu379@wisc.edu>
351f3be to
fe549e1
Compare
|
@claude review this PR, and look for potential regressions as well as inconsistencies with other code that is not in this PR |
|
Claude encountered an error after 2s —— View job I'll analyze this and get back to you. |
Signed-off-by: Nemo Yu <zyu379@wisc.edu>
Stack
This PR is stacked on #9215, which introduces the shared unary and binary geometry scalar execution layer. Review that PR first; this diff contains only the
ST_MakeLine/ST_Lengthfeature work and itsInterleaveArraydependency.Rationale for this change
Vortex's native geometry extension types should support constructing two-point line strings and measuring line-string length without an Arrow or WKB round trip.
What changes are included in this PR?
InterleaveArrayexecution, used to assemble MakeLine coordinate buffers from paired point columns.vortex.geo.make_linefor pairs of native Point arrays, paired row-by-row.vortex.geo.lengthwith planar Euclidean semantics, restricted to native LineString inputs.What APIs are changed? Are there any user-facing changes?
The Vortex geometry session now registers and exports
GeoMakeLineandGeoLength.